package cn.tedu.blog.server.service;

import cn.tedu.blog.server.pojo.dto.ArticleAddNewDTO;
import cn.tedu.blog.server.pojo.dto.ArticleEditDTO;
import cn.tedu.blog.server.pojo.vo.ApiArticleListItemVO;
import cn.tedu.blog.server.pojo.vo.ArticleAdminDetailVO;
import cn.tedu.blog.server.pojo.vo.ArticleDetailVO;
import cn.tedu.blog.server.pojo.vo.ArticleListItemVO;
import cn.tedu.blog.server.utils.JsonPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

public interface IArticleService  {
//    @Transactional
//    void addNew(ArticleAddNewDTO addNewDTO);

    /**
     * 根据id删除文章
     * @param id
     */
  
    void deleteById(long id);

    /**
     * 根据多个id批量删除文章
     * @param ids
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据id修改文章
     * @param
     * @return
     */
    void update(long id, ArticleEditDTO articleEditDTO);

    ArticleDetailVO  adminSelect(Long id);



    List<ArticleAdminDetailVO> adminSelectFindAll(ArticleAdminDetailVO articleAdminDetailVO);

    @Transactional
    void addNew(ArticleAddNewDTO addNewDTO);


    int selectCount();
    
    /*  -------前台部分-------  */

    /**
     * 根据分类id分页查询文章
     * @param categoryId
     * @return
     */
    JsonPage<ApiArticleListItemVO> listArticlesByCategoryId(Long categoryId, Integer page, Integer pageSize);
    
}
